/* ***************************************************** */
/* Arcans Team (2010), website                           */
/* Site under GNU GPL v3 Licence                         */
/* (see NOTICE and COPYING in the of the site file tree) */
/* ***************************************************** */

/* ***************************************************** */
/* module d'interaction projet                           */
/* ***************************************************** */
var projet = (function () {
	function initProjet (projet,type) {
		var nom = "";
		if (type == "show_objs") nom = "objectifs";
		if (type == "show_mess") nom = "messages";
		if (type == "show_parts") nom = "participants";
		voile.initPaff(); voile.addElt("titre",{"texte":"Les "+nom+" :"},0);
		var wrapper = voile.addElt("div",{"id":"voile_wrapper","style":"margin-left:165px;"},0);
		voile.addElt("progress",{"id":"progress_id"},wrapper);
		var btsdiv = voile.addElt("div",{"id":"btsdiv","style":"text-align:right;"},0);
		voile.addElt("button",{"onclick":"projet.abort();","id":"bt_close","texte":"Annuler"},btsdiv);
		ajaxFun("projet",new Array(projet,type),controle);
	}
	function abortProjet () {
		var wrapper = doc.byID("voile_wrapper");
		voile.suppElt(doc.byID("progress_id"));
		voile.addElt("p",{"style":"font-weight:bold;color:red;","texte":"Vous avez annulé la demande d'information."},wrapper);
		voile.modElt(doc.byID("bt_close"),{"texte":"Fermer","onclick":"voile.initPclose();"}); ajax.abort();
	}
	function controle (resultat) {
		voile.suppElt(doc.byID("progress_id"));
		voile.modElt(doc.byID("bt_close"),{"texte":"Fermer","onclick":"voile.initPclose();"});
		if (resultat == null || resultat.documentElement.getAttribute("idp") == 0) {
			var wrapper = doc.byID("voile_wrapper");
			voile.addElt("p",{"texte":"Erreur serveur.","style":"font-weight:bold;color:orange;font-size:1.5em;"},wrapper);
		}
		else {
			switch (resultat.documentElement.getAttribute("type")) {
				case "objs": objectifs.init(resultat); break;
				case "mess": messages.init(resultat); break;
				case "part": participants.init(resultat); break;
			}
		} 
	}
	return {
		init: function (projet,type) { initProjet(projet,type); },
		abort: function () { abortProjet(); }
	}
})();
/* ***************************************************** */
/* module d'interaction projet - objectifs               */
/* ***************************************************** */
var objectifs = (function () {
	var objs; var messages; var auth = 0; var idp = 0; var compt_car = 0;
	function initObj (resultat) {
		auth = resultat.documentElement.getAttribute("level"); idp = resultat.documentElement.getAttribute("idp");
		var wrapper = doc.byID("voile_wrapper"); objs = resultat.byTAG("obj");
		if (objs.length != 0) {
			var tab_obj = voile.addElt("table",{"class":"obs_tab","style":"font-size:0.9em;margin-left:20px;"},wrapper);
			var row_obj = voile.addElt("tr","",tab_obj);
			voile.addElt("th",{"texte":"Noms :"},row_obj); voile.addElt("th",{"texte":"P"},row_obj);
			voile.addElt("th",{"texte":"Rendus :"},row_obj); voile.addElt("th",{"texte":"Date créa. :"},row_obj);
			voile.addElt("th",{"texte":"Date modif. :"},row_obj);
			for (var iter=0;iter<objs.length;iter++) {
				row_obj = voile.addElt("tr","",tab_obj); row_obj.setAttribute("id","obj_"+objs[iter].getAttribute("id"));
				var spec1 = voile.addElt("td","",row_obj);
				var spec2 = "objectifs.aff_obj("+objs[iter].getAttribute("id")+");";
				voile.addElt("a",{"href":"#","onclick":spec2,"texte":objs[iter].getAttribute("nom")},spec1);
				spec1 = voile.addElt("td","",row_obj);
				voile.addElt("div",{"class":"prior_d prior"+objs[iter].getAttribute("prt")+"_d"},spec1);
				spec2 = objs[iter].getAttribute("niv");
				switch (spec2) {
					case "1": spec1 = "accepté"; break; case "2": spec1 = "analyse"; break;
					case "3": spec1 = "analysé"; break; case "4": spec1 = "écriture"; break;
					case "5": spec1 = "écrit"; break; case "6": spec1 = "vérification"; break;
					case "7": spec1 = "vérifié"; break;
				}
				spec1 = voile.addElt("td",{"texte":spec1},row_obj);
				if (spec2 == 2 || spec2 == 4 || spec2 == 6)
					voile.addElt("progress",{"style":"width:50px;","max":"100","value":objs[iter].getAttribute("rendu")},spec1);
				var spec1 = "text-align:center;";
				voile.addElt("td",{"style":spec1,"texte":objs[iter].getAttribute("date_post")},row_obj);
				if (objs[iter].getAttribute("date_maj") == "nodate") voile.addElt("td",{"style":spec1,"texte":"---"},row_obj);
				else voile.addElt("td",{"style":spec1,"texte":objs[iter].getAttribute("date_maj")},row_obj);
				/*if (auth >= 3) {
					var js = "objectifs.supp_obj("+objs[iter].getAttribute("id")+");";
					voile.addElt("a",{"texte":"sup","href":"#","onclick":js},voile.addElt("td","",row_obj));
				}*/
			}
		}
		else voile.addElt("p",{"texte":"Il n'y a pas d'objectif associé à ce projet pour l'instant.","id":"no_obj"},wrapper);
		if (auth >= 3) {
			var js = "objectifs.add("+resultat.documentElement.getAttribute("idp")+");";
			voile.addElt("button",{"texte":"Ajouter","onclick":js},doc.byID("btsdiv"));
		}
	}
	function aff_obj (resultat) {
		var wrapper = doc.byID("af3_wrapper"); voile.suppElt(doc.byID("progress_id"));
		if (resultat == null) {
			var wrapper = doc.byID("af3_wrapper");
			voile.addElt("p",{"texte":"Erreur serveur.","style":"font-weight:bold;color:orange;font-size:1.5em;"},wrapper);
		}
		else {
			resultat = resultat.documentElement;
			if (resultat.getAttribute("nb_mess") == "0") messages = Array();
			else messages = resultat.byTAG("message");
			aff_desc(resultat.getAttribute("obj_id"));
		}
		voile.modElt(doc.byID("bt_return"),{"texte":"Retour","onclick":"objectifs.close();"});
	}
	function aff_desc (obj_id) {
		var wrapper = doc.byID("af3_wrapper");
		while (wrapper.hasChildNodes()) voile.suppElt(wrapper.firstChild);
		if (doc.byID("bt_envoi") != null) voile.suppElt(doc.byID("bt_envoi"));
		var menu = voile.addElt("tr","",voile.addElt("table",{"class":"menu_tab","id":"menu_desc"},wrapper));
		voile.addElt("td",{"class":"active","texte":"Descriptif :","style":"width:80px;"},menu);
		var cell = voile.addElt("td",{"style":"width:110px;"},menu);
		var onclick = "objectifs.aff_mess("+obj_id+");";
		voile.addElt("a",{"texte":"Messages ("+messages.length+") :","href":"#","onclick":onclick},cell);
		voile.addElt("td",{"id":"af3_alert"},menu); var data;
		for (var iter=0;iter<objs.length;iter++) if (objs[iter].getAttribute("id") == obj_id) { data = objs[iter]; break; }
		var tab_desc = voile.addElt("table",{"id":"tab_desc"},wrapper);
		var row = voile.addElt("tr","",tab_desc); voile.addElt("td",{"texte":"Nom :","style":"font-weight:bold;"},row);
		if (auth >= 3) {
			var js = {"texte":data.getAttribute("nom"),"onclick":"objectifs.mod_aff_obj(0,0);","class":"pointer_effect"};
			voile.addElt("span",js,voile.addElt("td",{"id":"obj_nom"},row));
		}
		else voile.addElt("td",{"texte":data.getAttribute("nom")},row);
		var row = voile.addElt("tr","",tab_desc); voile.addElt("td",{"texte":"Priorité :","style":"font-weight:bold;"},row);
		cell = voile.addElt("td",{"id":"obj_prt"},row); voile.addElt("div",{"class":"prior_d prior"+data.getAttribute("prt")+"_d"},cell);
		var texte = "";
		switch (data.getAttribute("prt")) {
			case "1": texte="très basse priorité"; break; case "2": texte="basse priorité"; break;
			case "3": texte="priorité moyenne"; break; case "4": texte="haute priorité"; break;
			case "5": texte="très haute priorité"; break;
		}
		var js = "";
		if (auth >= 3) {
			js = "objectifs.mod_aff_obj(1,0);";
			js = {"texte":texte,"class":"prior"+data.getAttribute("prt")+"_t pointer_effect","onclick":js,"style":"cursor:pointer;"};
		}
		else js = {"texte":texte,"class":"prior"+data.getAttribute("prt")+"_t"};
		voile.addElt("span",js,cell); row = voile.addElt("tr","",tab_desc);
		voile.addElt("td",{"texte":"Niveau de rendu :","style":"font-weight:bold;"},row);
		//
		//TODO : modification du code pour permettre l'édition des objectifs
		//
		texte = "";
		//
		switch (data.getAttribute("niv")) {
			case "1": texte="accepté"; break; case "2": texte="analyse"; break; case "3": texte="analysé"; break;
			case "4": texte="écriture"; break; case "5": texte="écrit"; break;
			case "6": texte="vérification"; break; case "7": texte="vérifié"; break;
		}
		//
		cell = voile.addElt("td",{"texte":texte},row);
		//
		if (data.getAttribute("niv") == 2 || data.getAttribute("niv") == 4 || data.getAttribute("niv") == 6)
			voile.addElt("progress",{"value":data.getAttribute("rendu"),"max":"100"},cell);
		//
		row = voile.addElt("tr","",tab_desc); voile.addElt("td",{"texte":"date de création :","style":"font-weight:bold;"},row);
		//
		voile.addElt("td",{"texte":data.getAttribute("date_post")},row);
		//
		row = voile.addElt("tr","",tab_desc);
		//
		voile.addElt("td",{"texte":"dernière modification :","style":"font-weight:bold;"},row);
		//
		if (data.getAttribute("date_maj") == "nodate") voile.addElt("td",{"texte":"---"},row);
		//
		else voile.addElt("td",{"texte":data.getAttribute("date_maj")},row);
		//
		row = voile.addElt("tr","",tab_desc); voile.addElt("td",{"texte":"Description :","style":"font-weight:bold;"},row);
		//
		if (data.hasChildNodes()) {
			//
			voile.addElt("td","",row);
			//
			row = voile.addElt("tr","",tab_desc);
			//
			cell = voile.addElt("td",{"colspan":"2","style":"border:solid 1px #ccc;"},row);
			//
			cloneNodeFun(data.firstChild,cell);
			//
		}
		//
		else voile.addElt("td",{"texte":"Pas de description."},row);
		//
	}
	function aff_mess (obj_id) {
		var wrapper = doc.byID("af3_wrapper"); while (wrapper.hasChildNodes()) voile.suppElt(wrapper.firstChild);
		var menu = voile.addElt("tr","",voile.addElt("table",{"class":"menu_tab","id":"menu_desc"},wrapper));
		var cell = voile.addElt("td",{"style":"width:80px;"},menu);
		var onclick = "objectifs.aff_desc("+obj_id+");";
		voile.addElt("a",{"texte":"Descriptif :","href":"#","onclick":onclick},cell);
		voile.addElt("td",{"class":"active","texte":"Messages ("+messages.length+") :","style":"width:110px;"},menu);
		voile.addElt("td",{"id":"af3_alert"},menu);
		var div_left = voile.addElt("div",{"class":"div_left"},wrapper);
		var div_right = voile.addElt("div",{"class":"div_right"},wrapper);
		var div_clear = voile.addElt("div",{"class":"div_clear"},wrapper);
		if (messages.length == 0) voile.addElt("p",{"id":"no_mess","texte":"Il n'y a pas de messages pour l'instant."},div_left);
		else {
			var tab_mess = voile.addElt("table",{"style":"margin:4px;","id":"af3_tabmess"},div_left);
			for (var iter=0;iter<messages.length;iter++) {
				var row = voile.addElt("tr",{"id":"messA_"+messages[iter].getAttribute("id"),"style":"font-size:0.9em;"},tab_mess);
				voile.addElt("td",{"style":"font-weight:bold;","texte":"Auteur :"},row);
				voile.addElt("td",{"texte":messages[iter].getAttribute("user")},row);
				voile.addElt("td",{"style":"font-weight:bold;","texte":"Date :"},row);
				voile.addElt("td",{"texte":messages[iter].getAttribute("date")},row);
				var colspan = 4;
				if (auth >= 3) {
					colspan = 5; var cell = voile.addElt("td","",row);
					var js = "objectifs.moder("+obj_id+","+messages[iter].getAttribute("id")+");";
					voile.addElt("button",{"id":"but_"+messages[iter].getAttribute("id"),"texte":"X","onclick":js},cell);
				}
				row = voile.addElt("tr",{"id":"messB_"+messages[iter].getAttribute("id")},tab_mess);
				var cell = voile.addElt("td",{"colspan":colspan,"style":"border:solid 1px #aaa;"},row);
				cloneNodeFun(messages[iter].firstChild,cell);
			}
		}
		if (auth >= 2) {
			var tab = "objectifs.verif_com();";
			tab = {"style":"border:solid 1px #ccc;width:205px;height:200px;","id":"nv_com","onkeydown":tab,"onkeyup":tab};
			voile.addElt("textarea",tab,div_right);
			tab = {"texte":"Envoyer","onclick":"objectifs.add_com("+obj_id+");","id":"bt_envoi"};
			voile.addElt("button",tab,doc.byID("bts_af3"));
		}
	}
	function add_obj (id_pjt) {
		voile.initXaff(); voile.addElt("titre",{"texte":"Création d'objectif :"},2);
		var wrapper = voile.addElt("div",{"id":"af3_wrapper"},2);
		//
		var bts_af3 = voile.addElt("div",{"id":"bts_af3","style":"text-align:right;margin:10px;"},2);
		//
		voile.addElt("button",{"texte":"Annuler","onclick":"voile.initXclose();"},bts_af3);
		//
		voile.addElt("p",{"style":"color:red;font-weight:bold;","texte":"Partie non implémentée pour l'instant."},wrapper);
		//
		//TODO
		//
	}
	function add_intcom (resultat) {
		voile.suppElt(doc.byID("af3_prog"));
		if (resultat == null || resultat.documentElement.getAttribute("valid") == "2") {
			voile.modElt(doc.byID("af3_alert"),{"texte":"Erreur serveur.","style":"color:orange;"});
			doc.byID("bt_return").disabled = true;
			var js = "doc.byID('bt_return').disabled = false;doc.byID('bt_envoi').disabled = false;voile.modElt(doc";
			js = js+".byID('bt_return'),{'texte':'Retour','onclick':'objectifs.close();'});voile.modElt(doc.byID";
			window.setTimeout(js+"('af3_alert'),{'style':'','texte':''});doc.byID('nv_com').disabled = false;",1500);
		}
		else if (resultat.documentElement.getAttribute("valid") == "0") {
			voile.modElt(doc.byID("af3_alert"),{"texte":"Droits insuffisants !","style":"color:red;"});
			doc.byID("bt_return").disabled = true;
			var js = "doc.byID('bt_return').disabled = false;voile.modElt(doc.byID('bt_return'),{'texte':'Retour'";
			js = js+",'onclick':'objectifs.close();'});voile.modElt(doc.byID('af3_alert'),{'style':'','texte':''});";
			window.setTimeout(js+"voile.suppElt(doc.byID('nv_com'));voile.suppElt(doc.byID('bt_envoi'));",1500);
		}
		else if (resultat.documentElement.getAttribute("valid") == "1") {
			resultat = resultat.documentElement; var message = resultat.firstChild; doc.byID("bt_return").disabled = true;
			voile.modElt(doc.byID("af3_alert"),{"style":"color:green;","texte":"Message ajouté."});
			if (doc.byID("no_mess") != null) {
				voile.suppElt(doc.byID("no_mess"));
				voile.addElt("table",{"style":"margin:4px;","id":"af3_tabmess"},doc.byTAG("div_left")[0]);
			}
			var tabmess = doc.byID("af3_tabmess");
			var row = voile.addElt("tr",{"id":"messA_"+message.getAttribute("id"),"style":"font-size:0.9em;"},tabmess);
			voile.addElt("td",{"style":"font-weight:bold;","texte":"Auteur :"},row);
			voile.addElt("td",{"texte":message.getAttribute("user")},row);
			voile.addElt("td",{"style":"font-weight:bold;","texte":"Date :"},row);
			voile.addElt("td",{"texte":message.getAttribute("date")},row);
			var colspan = 4;
			if (auth >= 3) {
				colspan = 5; var cell = voile.addElt("td","",row);
				var js = "objectifs.moder("+resultat.getAttribute("obj_id")+","+message.getAttribute("id")+");";
				voile.addElt("button",{"id":"but_"+message.getAttribute("id"),"texte":"X","onclick":js},cell);
			}
			var row = voile.addElt("tr",{"id":"messB_"+message.getAttribute("id")},tabmess);
			var cell = voile.addElt("td",{"colspan":colspan,"style":"border:solid 1px #aaa;"},row);
			cloneNodeFun(message.firstChild,cell); messages[messages.length] = message;
			voile.modElt(doc.byID("menu_desc").byTAG("td")[1],{"texte":"Messages ("+messages.length+") :"});
			var js = "doc.byID('bt_return').disabled = false;doc.byID('bt_envoi').disabled = false;voile.modElt(doc.byID";
			js = js+"('bt_return'),{'texte':'Retour','onclick':'objectifs.close();'});doc.byID('nv_com').value = '';doc.byID";
			window.setTimeout(js+"('nv_com').disabled = false;voile.modElt(doc.byID('af3_alert'),{'style':'','texte':''});",1500);
		}
	}
	function verif_com () {
		var compt_car = 150 - doc.byID("nv_com").value.length;
		if (compt_car != 150) {
			if (compt_car >= 0) {
				voile.modElt(doc.byID("af3_alert"),{"style":"","texte":compt_car});
				if (doc.byID("bt_envoi").disabled) doc.byID("bt_envoi").disabled = false;
			}
			else {
				voile.modElt(doc.byID("af3_alert"),{"style":"color:red;","texte":compt_car});
				doc.byID("bt_envoi").disabled = true;
			}
		}
		else {
			voile.modElt(doc.byID("af3_alert"),{"style":"","texte":""});
			if (doc.byID("bt_envoi").disabled) doc.byID("bt_envoi").disabled = false;
		}
	}
	function moder_com (resultat) {
		voile.suppElt(doc.byID("af3_prog"));
		if (resultat == null || resultat.documentElement.getAttribute("valid") == "2") {
			voile.modElt(doc.byID("af3_alert"),{"texte":"Erreur serveur","style":"color:orange;"});
			doc.byID("bt_return").disabled = true;
			var js = "var buttons = doc.byID('af3_tabmess').byTAG('button');for(var iter=0;iter<buttons.length;iter++) ";
			js = js+"buttons[iter].disabled = false;doc.byID('bt_return').disabled = false;doc.byID('bt_envoi').disabled = false;";
			js = js+"voile.modElt(doc.byID('af3_alert'),{'texte':'','style':''});doc.byID('nv_com').disabled = false;";
			window.setTimeout(js+"voile.modElt(doc.byID('bt_return'),{'texte':'Retour','onclick':'objectifs.close();'});",1500);
		}
		else if (resultat.documentElement.getAttribute("valid") == "0") {
			voile.modElt(doc.byID("af3_alert"),{"texte":"Droits insuffisants !","style":"color:red;"});
			doc.byID("bt_return").disabled = true;
			var js = "var buttons = doc.byID('af3_tabmess').byTAG('button');while (buttons.length){";
			js = js+"voile.modElt(buttons[0].parentNode.parentNode.nextSibling.firstChild,{'colspan':'4'});";
			js = js+"voile.suppElt(buttons[0].parentNode);}doc.byID('bt_return').disabled = false;doc.byID('bt_envoi').disabled ";
			js = js+"= false;voile.modElt(doc.byID('af3_alert'),{'texte':'','style':''});doc.byID('nv_com').disabled = false;";
			window.setTimeout(js+"voile.modElt(doc.byID('bt_return'),{'texte':'Retour','onclick':'objectifs.close();'});",1500);
		}
		else if (resultat.documentElement.getAttribute("valid") == "1") {
			voile.modElt(doc.byID("af3_alert"),{"texte":"Le message a bien été supprimé.","style":"color:green;"});
			doc.byID("bt_return").disabled = true; resultat = resultat.documentElement;
			var recup = []; var eter = 0;
			for (var iter=0;iter<messages.length;iter++) if (messages[iter].getAttribute("id") != resultat.getAttribute("com_id"))
				{ recup[eter] = messages[iter]; eter++; }
			messages = recup; voile.modElt(doc.byID("menu_desc").byTAG("td")[1],{"texte":"Messages ("+messages.length+") :"});
			var js = "voile.suppElt(doc.byID('messA_"+resultat.getAttribute("com_id")+"'));";
			js = js+"voile.suppElt(doc.byID('messB_"+resultat.getAttribute("com_id")+"'));";
			js = js+"doc.byID('bt_return').disabled = false;doc.byID('bt_envoi').disabled = false;";
			js = js+"voile.modElt(doc.byID('af3_alert'),{'texte':'','style':''});doc.byID('nv_com').disabled = false;";
			js = js+"var buttons = doc.byID('af3_tabmess').byTAG('button');";
			js = js+"for (var iter=0;iter<buttons.length;iter++) buttons[iter].disabled = false;";
			window.setTimeout(js+"voile.modElt(doc.byID('bt_return'),{'texte':'Retour','onclick':'objectifs.close();'});",1500);
		}
	}
	function sup_obj (resultat) {
		voile.suppElt(doc.byID("prog_S"));
		voile.modElt(doc.byID("bts_af2").byTAG("button")[0],{"texte":"Retour","onclick":"voile.initSclose(0);"});
		if (resultat == null || resultat.documentElement.getAttribute("valid") == "2")
			voile.modElt(doc.byID("af2_message"),{"texte":"Erreur serveur.","style":"font-weight:bold;color:orange;"});
		else if (resultat.documentElement.getAttribute("valid") == "0") {
			voile.modElt(doc.byID("af2_message"),{"texte":"Droits insuffisants !","style":"font-weight:bold;color:red;"});
			var but_sup = doc.byID("voile_wrapper").byTAG("tr");
			for (var iter=1;iter<but_sup.length;iter++) voile.suppElt(but_sup[iter].byTAG("td")[5]);
		}
		else if (resultat.documentElement.getAttribute("valid") == "1") {
			resultat = resultat.documentElement;
			voile.modElt(doc.byID("af2_message"),{"texte":"Objectif supprimé.","style":"font-weight:bold;color:green;"});
			if (objs.length == 1) {
				objs = []; voile.suppElt(doc.byID("voile_wrapper").firstChild);
				var texte = "Il n'y a pas d'objectif associé à ce projet pour l'instant.";
				voile.addElt("p",{"id":"no_obj","texte":texte},doc.byID("voile_wrapper"));
				var pagetab = doc.byID("objpage_"+resultat.getAttribute("obj_id")).parentNode.parentNode;
				supNodeFun(pagetab.firstChild);
				addNodeFun("p",{"id":"no_objpage","texte":"Il n'y a pas d'objectif pour ce projet."},pagetab);
			}
			else {
				if (doc.byID("objpage_"+resultat.getAttribute("obj_id")) != null) {
					var parent_objp = doc.byID("objpage_"+resultat.getAttribute("obj_id")).parentNode;
					supNodeFun(doc.byID("objpage_"+resultat.getAttribute("obj_id")));
					if (objs.length > 5) {
						var row = addNodeFun("tr",{"id":"objpage_"+objs[5].getAttribute("id")},parent_objp);
						addNodeFun("td",{"texte":objs[5].getAttribute("nom")},row);
						addNodeFun("div",{"class":"prior_d prior"+objs[5].getAttribute("prt")+"_d"},addNodeFun("td","",row));
						var texte = "";
						switch (objs[5].getAttribute("niv")) {
							case "1": texte = "accepté"; break; case "2": texte = "analyse"; break;
							case "3": texte = "analysé"; break; case "4": texte = "écriture"; break;
							case "5": texte = "écrit"; break; case "6": texte = "vérification"; break;
							case "7": texte = "vérifié"; break;
						}
						addNodeFun("td",{"texte":texte},row);
						if (objs[5].getAttribute("date_maj") == "nodate") texte = objs[5].getAttribute("date_post");
						else texte = objs[5].getAttribute("date_maj");
						addNodeFun("td",{"texte":texte},row);
					}
				}
				var eter = 0; var recup = [];
				for (var iter=0;iter<objs.length;iter++) if (objs[iter].getAttribute("id") != resultat.getAttribute("obj_id"))
					{ recup[eter] = objs[iter]; eter++; }
				objs = recup; voile.suppElt(doc.byID("obj_"+resultat.getAttribute("obj_id")));
			}
		}
	}
	function mod_obj (resultat) {
		//
		//TODO
		//
	}
	//
	return {
		init: function (resultat) { initObj(resultat); },
		aff_obj: function (obj) {
			var row = doc.byID("obj_"+obj); voile.initXaff();
			voile.addElt("titre",{"texte":row.byTAG("a")[0].firstChild.nodeValue+" :"},2);
			var wrapper = voile.addElt("div",{"id":"af3_wrapper"},2);
			voile.addElt("progress",{"id":"progress_id"},wrapper);
			var bts_af3 = voile.addElt("div",{"id":"bts_af3","style":"text-align:right;margin:10px;"},2);
			voile.addElt("button",{"texte":"Annuler","onclick":"objectifs.abort();","id":"bt_return"},bts_af3);
			ajaxFun("projet",new Array(idp,"obj_desc",obj),aff_obj);
		},
		aff_desc: function (obj) { aff_desc(obj); }, aff_mess: function (obj) { aff_mess(obj); },
		add: function () { add_obj(); },
		abort: function () {
			var wrapper = doc.byID("af3_wrapper"); voile.suppElt(doc.byID("progress_id")); voile.suppElt(doc.byID("bt_return"));
			voile.addElt("p",{"style":"font-weight:bold;color:red;","texte":"Vous avez annulé la demande d'information."},wrapper);
			ajax.abort(); window.setTimeout("voile.initXclose();",1800);
		},
		abort_act: function (idc) {
			voile.suppElt(doc.byID("af3_prog")); doc.byID("bt_return").disabled = true;
			voile.modElt(doc.byID("af3_alert"),{"style":"color:red;","texte":"Action annulé."});
			var js = "doc.byID('bt_envoi').disabled = false;doc.byID('bt_return').disabled = false;";
			if (idc) js = js+"doc.byID('but_"+idc+"').disabled = false;";
			js = js+"voile.modElt(doc.byID('af3_alert'),{'style':'','texte':''});voile.modElt(doc.byID";
			js = js+"('bt_return'),{'texte':'Retour','onclick':'objectifs.close();'});";
			window.setTimeout(js+"doc.byID('nv_com').disabled = false;",1500); ajax.abort();
		},
		close: function () { messages = Array(); voile.initXclose(); },
		add_com: function (obj) {
			var texte = doc.byID("nv_com").value;
			if (texte == "") {
				voile.modElt(doc.byID("af3_alert"),{"style":"color:red;","texte":"Champs vide !"});
				doc.byID("bt_envoi").disabled = true;
				var js = "doc.byID('bt_envoi').disabled = false;voile.modElt(doc.byID('af3_alert'),";
				window.setTimeout(js+"{'style':'','texte':''});",1500);
			}
			else {
				doc.byID("nv_com").disabled = true; doc.byID("bt_envoi").disabled = true;
				voile.addElt("progress",{"id":"af3_prog"},doc.byID("af3_alert"));
				voile.modElt(doc.byID("bt_return"),{"texte":"Annuler","onclick":"objectifs.abort_act(0);"});
				ajaxFun("projet",new Array(idp,"add_com",obj,texte),add_intcom);
			}
		},
		verif_com: function () { verif_com(); },
		moder: function (obj,idc) {
			var buttons = doc.byID("af3_tabmess").byTAG("button");
			for (var iter=0;iter<buttons.length;iter++) buttons[iter].disabled = true;
			voile.modElt(doc.byID("af3_alert"),{"texte":"","style":""});
			doc.byID("nv_com").disabled = true; voile.addElt("progress",{"id":"af3_prog"},doc.byID("af3_alert"));
			doc.byID("bt_envoi").disabled = true;
			voile.modElt(doc.byID("bt_return"),{"texte":"Annuler","onclick":"objectifs.abort_act("+idc+");"});
			ajaxFun("projet",new Array(idp,"moder_obj",obj,idc),moder_com);
		},
		supp_obj: function (obj) {
			voile.initSaff(0); voile.addElt("titre",{"texte":"Suppression objectif"},1);
			voile.addElt("p",{"texte":"Objectif à supprimer : "+doc.byID("obj_"+obj).byTAG("a")[0].firstChild.nodeValue},1);
			voile.addElt("div",{"id":"af2_message","texte":"Suppression en cours ..."},1); voile.addElt("progress",{"id":"prog_S"},1);
			var bts_af2 = voile.addElt("div",{"id":"bts_af2","style":"text-align:right;"},1);
			voile.addElt("button",{"texte":"Annuler","onclick":"objectifs.abort_supp();"},bts_af2);
			ajaxFun("projet",new Array(idp,"supp_obj",obj),sup_obj);
		},
		abort_supp: function () {
			voile.suppElt(doc.byID("prog_S")); voile.suppElt(doc.byID("bts_af2"));
			var js = {"texte":"Vous avez annulé la suppression.","style":"font-weight:bold;color:orange;"};
			voile.modElt(doc.byID("af2_message"),js); ajax.abort(); window.setTimeout("voile.initSclose(0);",1000);
		},
		mod_aff_obj: function (elt,etat) {
			//
			NIY(0);
			//
			//TODO
			//
		}
		//
	}
})();
/* ***************************************************** */
/* module d'interaction projet - messages                */
/* ***************************************************** */
var messages = (function () {
	var messags; var auth = 0; var idp = 0;
	function initMess (resultat) {
		resultat = resultat.documentElement; auth = resultat.getAttribute("level");
		idp = resultat.getAttribute("idp"); var wrapper = doc.byID("voile_wrapper");
		if (resultat.getAttribute("nb_mess") == "0")
			voile.addElt("p",{"id":"no_message","texte":"Il n'y a pas de message pour l'instant."},wrapper);
		else {
			var tab_mess = voile.addElt("table",{"id":"messpanel"},wrapper); messags = resultat.byTAG("mess");
			for (var iter=0;iter<messags.length;iter++) {
				var row = voile.addElt("tr",{"id":"messpA_"+messags[iter].getAttribute("id")},tab_mess);
				voile.addElt("td",{"texte":"Auteur :","style":"font-weight:bold;"},row);
				voile.addElt("td",{"texte":messags[iter].getAttribute("nom")},row);
				voile.addElt("td",{"texte":"Date :","style":"font-weight:bold;"},row);
				voile.addElt("td",{"texte":messags[iter].getAttribute("date_post")},row);
				var colspan = 4;
				if (auth >= 3) {
					colspan = 5; var onclick = "messages.supp_mess("+messags[iter].getAttribute("id")+");";
					voile.addElt("button",{"texte":"X","onclick":onclick},voile.addElt("td","",row));
				}
				row = voile.addElt("tr",{"id":"messpB_"+messags[iter].getAttribute("id")},tab_mess);
				cloneNodeFun(messags[iter].firstChild,voile.addElt("td",{"colspan":colspan,"style":"border:solid 1px #aaa;"},row));
			}
		}
		if (auth >= 2) voile.addElt("button",{"texte":"Ecrire","onclick":"messages.ecrire();"},doc.byID("btsdiv"));
	}
	function supp_message (resultat) {
		voile.suppElt(doc.byID("prog_S"));
		voile.modElt(doc.byID("bts_af2").byTAG("button")[0],{"texte":"Retour","onclick":"voile.initSclose(0);"});
		if (resultat == null || resultat.documentElement.getAttribute("valid") == "2")
			voile.modElt(doc.byID("af2_message"),{"texte":"Erreur serveur.","style":"font-weight:bold;color:orange;"});
		else if (resultat.documentElement.getAttribute("valid") == "0") {
			voile.modElt(doc.byID("af2_message"),{"texte":"Droits insuffisants !","style":"font-weight:bold;color:red;"});
			var but_sup = doc.byID("voile_wrapper").byTAG("tr"); var pass=true;
			for (var iter=0;iter<but_sup.length;iter++) {
				if (pass) { voile.suppElt(but_sup[iter].byTAG("td")[4]); pass=false; }
				else { voile.modElt(but_sup[iter].firstChild,{"colspan":"4"}); pass=true; }
			}
		}
		else if (resultat.documentElement.getAttribute("valid") == "1") {
			resultat = resultat.documentElement;
			voile.modElt(doc.byID("af2_message"),{"texte":"Message supprimé.","style":"font-weight:bold;color:green;"});
			voile.suppElt(doc.byID("messpA_"+resultat.getAttribute("mess_id")));
			voile.suppElt(doc.byID("messpB_"+resultat.getAttribute("mess_id")));
			if (messags.length == 1) {
				messags = []; var tab_messpage = doc.byID("messpage").parentNode; supNodeFun(tab_messpage.firstChild);
				addNodeFun("p",{"id":"no_messpage","texte":"Il n'y a pas de message pour ce projet."},tab_messpage);
				voile.suppElt(doc.byID("messpanel"));
				voile.addElt("p",{"id":"no_message","texte":"Il n'y a pas de message pour l'instant."},doc.byID("voile_wrapper"));
			}
			else {
				if (messags[messags.length -1].getAttribute("id") == resultat.getAttribute("mess_id")) {
					//
					//
					//
					//TODO : mise à jour de la page
					//
				}
				var recup = []; var eter = 0;
				for (var iter=0;iter<messags.length;iter++)
					if (messags[iter].getAttribute("id") != resultat.getAttribute("mess_id")) { recup[eter] = messags[iter]; eter++; }
				messags = recup;
			}
		}
	}
	//
	return {
		init: function (resultat) { initMess(resultat); },
		supp_mess: function (mess) {
			voile.initSaff(0); voile.addElt("titre",{"texte":"Suppression message :"},1);
			voile.addElt("div",{"id":"af2_message","texte":"Suppression en cours ..."},1); voile.addElt("progress",{"id":"prog_S"},1);
			var bts_af2 = voile.addElt("div",{"id":"bts_af2","style":"text-align:right;"},1);
			voile.addElt("button",{"texte":"Annuler","onclick":"messages.abort_supp();"},bts_af2);
			ajaxFun("projet",new Array(idp,"supp_mess",mess),supp_message);
		},
		abort_supp: function () {
			voile.suppElt(doc.byID("prog_S")); voile.suppElt(doc.byID("bts_af2"));
			var js = {"texte":"Vous avez annulé la suppression.","style":"font-weight:bold;color:orange;"};
			voile.modElt(doc.byID("af2_message"),js); ajax.abort(); window.setTimeout("voile.initSclose(0);",1000);
		},
		ecrire: function () {
			//
			NIY(0);
			//
			//TODO
			//
		}
		//
	}
})();
/* ***************************************************** */
/* module d'interaction projet - participants            */
/* ***************************************************** */
var participants = (function () {
	function initPart (resultat) {
		var wrapper = doc.byID("voile_wrapper");
		resultat = resultat.documentElement;
		if (resultat.getAttribute("nb_part") == 0) {
			var tab = {"texte":"Il n'y a pas de participants au projet actuellement.","style":"margin-left:50px;","id":"no_part"};
			voile.addElt("p",tab,wrapper);
		}
		else {
			//admin = 100;    leader = 50;    dev = 10;   proposé  =  5;    invité = 1;    visiteur = 0;
			//
			var nb_part = resultat.getAttribute("nb_part");
			var list_part = resultat.byTAG("user");
			var tab_part = voile.addElt("table","",wrapper);
			var row_part = voile.addElt("tr","",tab_part);
			voile.addElt("th",{"texte":"Liste des responsables :"},row_part);
			var texte_th = "Il n'y a pas de responsables.";
			if (resultat.getAttribute("nbp_s1") > 0) texte_th = resultat.getAttribute("nbp_s1")+" responsables.";
			voile.addElt("th",{"style":"font-weight:normal;","texte":texte_th},row_part);
			if (resultat.getAttribute("nbp_s1") > 0) {
				row_part = voile.addElt("tr","",tab_part);
				//
				//TODO : affichage de la liste des responsables
				//
				//voile.addElt
				//
			}
			//
			//
			row_part = voile.addElt("tr","",tab_part);
			voile.addElt("th",{"texte":"Liste des développeurs :"},row_part);
			var texte_th = "Il n'y a pas de développeurs.";
			if (resultat.getAttribute("nbp_s2") > 0) texte_th = resultat.getAttribute("nbp_s2")+" développeurs.";
			voile.addElt("th",{"style":"font-weight:normal;","texte":texte_th},row_part);
			//
			//TODO : affichage de la liste des développeurs
			//
			//
			row_part = voile.addElt("tr","",tab_part);
			voile.addElt("th",{"texte":"Liste des propositions :"},row_part);
			var texte_th = "Il n'y a pas de propositions.";
			if (resultat.getAttribute("nbp_s3") > 0) texte_th = resultat.getAttribute("nbp_s3")+" propositions.";
			voile.addElt("th",{"style":"font-weight:normal;","texte":texte_th},row_part);
			//
			//TODO : affichage de la liste des propositions
			//
			//
			row_part = voile.addElt("tr","",tab_part);
			voile.addElt("th",{"texte":"Liste des anciens participants :"},row_part);
			var texte_th = "Il n'y a pas d'anciens.";
			if (resultat.getAttribute("nbp_s4-5") > 0) texte_th = resultat.getAttribute("nbp_s4-5")+" anciens.";
			voile.addElt("th",{"style":"font-weight:normal;","texte":texte_th},row_part);
			//
			//TODO : affichage de la liste des anciens
			//
			//
			voile.addElt("p",{"texte":"Liste participants en cours d'implementation."},wrapper);
			//
		}
		//
		if (resultat.getAttribute("level") == 1) {
			var js = "participants.propose("+resultat.getAttribute("idp")+","+resultat.getAttribute("user_id")+");";
			voile.addElt("button",{"texte":"Se proposer","onclick":js},doc.getElementById("btsdiv"));
		}
	}
	function propose (projet,id_user) {
		//
		NIY(0);
		//
	}
	//
	return {
		init: function (resultat) { initPart(resultat); },
		propose: function (projet,id_user) { propose(projet,id_user); } //TODO
		//
	}
})();